package com.wisdytech.linkdcs.measuretool.service;

import com.github.pagehelper.PageInfo;
import com.wisdytech.common.bean.Filter;
import com.wisdytech.linkdcs.equipment.model.Equipment;
import com.wisdytech.linkdcs.measuretool.model.MeasureTool;
import com.wisdytech.linkdcs.system.model.SysUser;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zhanghailin
 * @since 2018-06-15
 */
public interface IMeasureToolService {

    PageInfo<MeasureTool> getMeasureToolByFilter(String measureToolCode,
                                                 String measureToolName,
                                                 String measureToolModel,
                                                 String supplier,
                                                 String areaCode,
                                                 String areaName,
                                                 String department,
                                                 String dutyUser,
                                                 String dutyUserName,
                                                 String productionDateStart,
                                                 String productionDateEnd,
                                                 String checkFlag,
                                                 String checkType,
                                                 Long checkCycle,
                                                 String remark,
                                                 Filter filter
                                                 );

    /**
     *
     * @param measureTool 实体类
     * @param operator 操作人
     * @return 操作结果
     */
    Boolean saveOrUpdateMeasureTool(MeasureTool measureTool, SysUser operator);

    /**
     *
     * @param pkIds 主键
     * @param operator 操作人
     * @return 操作结果
     */
    Boolean deleteMeasureTool(String pkIds, SysUser operator);


    MeasureTool getMeasureToolInfoById(String pkId);

    MeasureTool getMeasureToolInfoByCode(String measureToolCode);

    /**
     * 查询计量器具待检验列表
     */
    PageInfo<MeasureTool> getMeasureToolCheckList(String measureToolCode, String measureToolName, String supplier, String checkType, Long checkCycle, String nextCheckDateStart, String nextCheckDateEnd, String isOverDate,Filter filter);

    /**
     * 获取计量器具校验基础信息
     * @param pkId 主键
     * @return MeasureTool
     */
    MeasureTool getMeasureToolCheckBasicInfo(String pkId);

    PageInfo<MeasureTool> getMeasureToolList(String search, Filter filter);

    PageInfo<Equipment> getEquipmentList(String search,Filter filter);

    Equipment getEquipmentInfo(String equipCode);

}
